package com.hejing.自定义泛型类与泛型方法;

import org.junit.Test;

/**
 * ClassName: GenericTest
 * Package: com.hejing.自定义泛型类与泛型方法
 * Description:
 *
 * @Author: HeJing
 * @Create: 2023-05-21 20:03
 * @Version: 1.0
 */
public class GenericTest {

    // 测试自定义泛型类
    @Test
    public void test01(){

        // 实例化时，可以指明类的泛型参数的类型
        // 一旦指明泛型的类型，则在泛型类中凡是使用此泛型参数的位置都会被替换为指定的类型。
        Order<String> order = new Order<>("李华", 1);
        System.out.println(order.getT().getClass());

        // 注意，指定数据类型时只能使用引用数据类型
        // order<int> order = new Order<>(); 报错，应修改为 order<Integer> order = new Order<>();
    }

    /**
     * 测试Order的子类
     */
    @Test
    public void test02(){

        // 实例化SubOrder01
        SubOrder01 sub01 = new SubOrder01();
    }

    @Test
    public void test03(){
        // 实例化SubOrder02
        SubOrder02 sub02 = new SubOrder02();
    }

    @Test
    public void test04(){
        // 实例化SubOrder03
        SubOrder03<String> sub03 = new SubOrder03<>();
        sub03.show("你好世界");
    }

    @Test
    public void test05(){
        // 实例化SubOrder04
        SubOrder04<String> sub04 = new SubOrder04<>("哈哈");
    }


    @Test
    public void test06(){
        // 实例化SubOrder05
        SubOrder05<String, Integer> sub05 = new SubOrder05<>();
        String t1 = sub05.getT();
        Integer e1 = sub05.getE();

    }
}





















